#include <iostream>

using namespace std;
/*
	组合：
		将一个类的对象，作为另一个类的成员变量
*/
class X {
	int i;
public:
	X() { i = 0; }
	void set(int ii) { i = ii; }
	int read() const { return i; }
	int permute() { return i = i * 47; }
};

class Y {
	int i;
public:
	//组合 -- 将对象作为成员变量
	X x; // 嵌入式对象Embedded object, 子对象subobject
	
	Y() { i = 0; }
	void f(int ii) { i = ii; }
	int g() const { return i; }
};

int main(int argc, char *argv[]) {
	Y y;
	y.f(47); 
	
	y.x.set(37);
}